home *** CD-ROM | disk | FTP | other *** search
- '-> Mattonite Editor by Stefano Regattin
- 'i> 13 ottobre 1996
- 'm> 14,16,17,18,19,20,25,26,30 ottobre 1996
- 'm> 3 luglio 1997
- 'm> 12 novembre 1997
- 'm> 10,18 dicembre 1997
- 'm> 15 febbraio 1998
- 'm> 19,20,21,22,24,30 maggio 2000
- 'm> 17 luglio 2000
- 'm> 6 dicembre 2000
- '-------------------
- OGGETTI$="MattoniteOggetti.Abk"
- BANCO=65535
- POSIZIONELINEAMAGGIORE=255
- POSIZIONELINEAMINORE=0
- Dim MATTONCINO(246),X0ZONA(246),Y0ZONA(246)
- Global FILE$,LIVELLO$,NOMEFILE$,OGGETTI$,PERCORSO$,PERCORSODEILIVELLI$
- Global PERCORSODEGLIOGGETTI$
- Global BANCO,BLULINEAMINORE,BONUS,C0LORELINEAMAGGIORE,C0LORELINEAMINORE
- Global CONVERSIONERIUSCITA,LINEAMAGGIORE
- Global LIVELLO,LINEE,POSIZIONELINEAMAGGIORE,POSIZIONELINEAMINORE
- Global RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
- Global ROSSOLINEAMINORE,VERDELINEAMINORE
- Global MATTONCINO(),X0ZONA(),Y0ZONA()
- Proc INDIVIDUALAPOSIZIONEDELPROGRAMMA
- Proc IMPOSTAIPERCORSIDEIFILE
- Proc IMPOSTALOSCHERMO
- Proc IMPOSTALARCOBALENO
- Proc IMPOSTAILAMPEGGI
- Proc CARICAGLIOGGETTI
- Proc IMPOSTAICOLORI
- Proc IMPOSTALEZONEDEIMATTONCINI
- Proc IMPOSTALABARRADISCORRIMENTO
- Proc MOSTRALEZONE
- Proc MOSTRALALINEAATTIVA
- LINEAMAGGIORE=True
- Proc MOSTRALALINEAATTIVA
- Ink 62 : Bar 20,209 To 29,218
- Ink 61 : Polyline 20,217 To 20,209 To 28,209
- Polyline 24,211 To 22,213 To 22,214 To 24,216
- Ink 63 : Polyline 21,218 To 29,218 To 29,210
- Polyline 27,211 To 25,213 To 25,214 To 27,216
- Set Zone 248,20,209 To 29,218
- Get Icon 1,20,209 To 29+1,218+1
- Ink 62 : Bar 30,209 To 39,218
- Ink 61 : Polyline 30,217 To 30,209 To 38,209
- Polyline 32,211 To 34,213 To 34,214 To 32,216
- Ink 63 : Polyline 31,218 To 39,218 To 39,210
- Polyline 35,211 To 37,213 To 37,214 To 35,216
- Set Zone 249,30,209 To 39,218
- Get Icon 2,30,209 To 39+1,218+1
- Set Zone 250,233,209 To 264,223
- Set Zone 251,233,225 To 264,239
- Set Zone 252,233,241 To 264,255
- Set Zone 253,273,0 To 319,255
- Proc MOSTRAILLIVELLO
- Paste Icon 64,209,1
- Set Zone 254,64,209 To 73,218
- Paste Icon 74,209,2
- Set Zone 255,74,209 To 83,218
- Proc MOSTRAILBONUS
- Paste Icon 140,209,1
- Set Zone 256,140,209 To 149,218
- Paste Icon 150,209,2
- Set Zone 257,150,209 To 159,218
- Set Zone 258,0,248 To 31,255 : Rem Load
- Set Zone 259,40,248 To 71,255 : Rem Save
- Set Zone 260,80,248 To 159,255 : Rem Line
- Set Zone 261,0,240 To 55,247 : Rem Rainbow
- Set Zone 262,56,240 To 71,247 : Rem Arrow up
- Set Zone 263,72,240 To 87,247 : Rem Arrow down
- Set Zone 264,160,209 To 191,216 : Rem Quit
- Ink 29,32 : Text 160,216,"Quit"
- Limit Mouse
- Paste Bob 0,209,83
- MATTONCINO=1
- Do
- XTOPO=X Screen(X Mouse)
- YTOPO=Y Screen(Y Mouse)
- TASTODELTOPOCLICCATO=Mouse Click
- TASTODELTOPOPREMUTO=Mouse Key
- ZONATOPO=Mouse Zone
- If TASTODELTOPOPREMUTO=1
- If ZONATOPO>0 and ZONATOPO<248
- If MATTONCINO=0
- Ink 0 : Bar X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1) To X0ZONA(ZONATOPO-1)+19,Y0ZONA(ZONATOPO-1)+9
- Else
- Paste Bob X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1),MATTONCINO+82
- End If
- MATTONCINO(ZONATOPO-1)=MATTONCINO
- Else If ZONATOPO>249 and ZONATOPO<253
- If LINEAMAGGIORE=True
- ROSSO=C0LORELINEAMAGGIORE/256
- VERDE=C0LORELINEAMAGGIORE/16 mod 16
- BLU=C0LORELINEAMAGGIORE mod 16
- Else
- ROSSO=C0LORELINEAMINORE/256
- VERDE=C0LORELINEAMINORE/16 mod 16
- BLU=C0LORELINEAMINORE mod 16
- End If
- If ZONATOPO=250
- ROSSO=(XTOPO-233)/2
- Hslider 233,209 To 264,223,16,ROSSO,1
- Ink 0 : Bar 217,216 To 232,223
- ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
- Else If ZONATOPO=251
- VERDE=(XTOPO-233)/2
- Hslider 233,225 To 264,239,16,VERDE,1
- Ink 0 : Bar 217,232 To 232,239
- VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
- Else If ZONATOPO=252
- BLU=(XTOPO-233)/2
- Hslider 233,241 To 264,255,16,BLU,1
- Ink 0 : Bar 217,248 To 232,255
- BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
- End If
- C0LORE=ROSSO*256+VERDE*16+BLU
- Colour 1,C0LORE
- If LINEAMAGGIORE=True
- C0LORELINEAMAGGIORE=C0LORE
- Rain(0,POSIZIONELINEAMAGGIORE)=C0LORELINEAMAGGIORE
- Else
- C0LORELINEAMINORE=C0LORE
- Rain(0,POSIZIONELINEAMINORE)=C0LORELINEAMINORE
- End If
- Rainbow 0,257,0,271
- Else If ZONATOPO=253
- If YTOPO>POSIZIONELINEAMINORE
- Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
- POSIZIONELINEAMAGGIORE=YTOPO
- LINEAMAGGIORE=True
- Proc MOSTRALALINEAATTIVA
- End If
- Else If ZONATOPO=258
- Inverse On : Print At(0,31);"Load"; : Inverse Off
- Proc CARICAILLIVELLO
- Proc DABANCOAVARIABILI
- Rainbow 0,257,0,271
- Proc MOSTRAIMATTONCINI
- Proc MOSTRAILBONUS
- Proc MOSTRALEZONE
- Proc MOSTRALALINEAATTIVA
- LINEAMAGGIORE= Not LINEAMAGGIORE
- Proc MOSTRALALINEAATTIVA
- Else If ZONATOPO=259
- Inverse On : Print At(5,31);"Save"; : Inverse Off
- Proc DAVARIABILIABANCO
- Proc SALVAILLIVELLO
- Proc MOSTRALEZONE
- Proc MOSTRALALINEAATTIVA
- End If
- Else If TASTODELTOPOPREMUTO=2
- If ZONATOPO=253
- If YTOPO<POSIZIONELINEAMAGGIORE
- Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
- POSIZIONELINEAMINORE=YTOPO
- LINEAMAGGIORE=False
- Proc MOSTRALALINEAATTIVA
- End If
- Else If ZONATOPO=254
- Add LIVELLO,-1,0 To 999
- Proc MOSTRAILLIVELLO
- Else If ZONATOPO=255
- Add LIVELLO,1,0 To 999
- Proc MOSTRAILLIVELLO
- Else If ZONATOPO=256
- Add BONUS,-1,0 To 9999999
- Proc MOSTRAILBONUS
- Else If ZONATOPO=257
- Add BONUS,1,0 To 9999999
- Proc MOSTRAILBONUS
- End If
- End If
- If TASTODELTOPOCLICCATO=1
- If ZONATOPO=248
- Add MATTONCINO,-1,0 To 33
- If MATTONCINO=0
- Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
- Else
- Paste Bob 0,209,82+MATTONCINO
- End If
- Else If ZONATOPO=249
- Add MATTONCINO,1,0 To 33
- If MATTONCINO=0
- Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
- Else
- Paste Bob 0,209,82+MATTONCINO
- End If
- Else If ZONATOPO=254
- Add LIVELLO,-1,0 To 999
- Proc MOSTRAILLIVELLO
- Else If ZONATOPO=255
- Add LIVELLO,1,0 To 999
- Proc MOSTRAILLIVELLO
- Else If ZONATOPO=256
- Add BONUS,-1,0 To 9999999
- Proc MOSTRAILBONUS
- Else If ZONATOPO=257
- Add BONUS,1,0 To 9999999
- Proc MOSTRAILBONUS
- Else If ZONATOPO=260
- LINEAMAGGIORE= Not LINEAMAGGIORE
- Proc MOSTRALALINEAATTIVA
- Else If ZONATOPO=261
- Inverse On : Print At(0,30);"Rainbow"; : Inverse Off
- LINEE=POSIZIONELINEAMAGGIORE-POSIZIONELINEAMINORE+1
- If LINEE>2
- Proc CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
- Proc PROGRESSIONECOLORI
- Else
- Bell 1
- End If
- Proc MOSTRALEZONE
- Proc MOSTRALALINEAATTIVA
- Else If ZONATOPO=262
- Inverse On : Print At(7,30);Chr$(147);Chr$(148); : Inverse Off
- If LINEAMAGGIORE=True
- If POSIZIONELINEAMAGGIORE>0 and POSIZIONELINEAMAGGIORE>POSIZIONELINEAMINORE+1
- Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
- Dec POSIZIONELINEAMAGGIORE
- Wait 5
- End If
- Else
- If POSIZIONELINEAMINORE>0
- Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
- Dec POSIZIONELINEAMINORE
- Wait 5
- End If
- End If
- Proc MOSTRALEZONE
- Proc MOSTRALALINEAATTIVA
- Else If ZONATOPO=263
- Inverse On : Print At(9,30);Chr$(149);Chr$(150); : Inverse Off
- If LINEAMAGGIORE=True
- If POSIZIONELINEAMAGGIORE<255
- Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
- Inc POSIZIONELINEAMAGGIORE
- Wait 5
- End If
- Else
- If POSIZIONELINEAMINORE<255 and POSIZIONELINEAMINORE<POSIZIONELINEAMAGGIORE-1
- Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
- Inc POSIZIONELINEAMINORE
- Wait 5
- End If
- End If
- Proc MOSTRALEZONE
- Proc MOSTRALALINEAATTIVA
- Else If ZONATOPO=264
- Exit
- End If
- End If
- Loop
- Rainbow Del 0 : Screen Close 0 : Erase All : End
- Procedure CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
- ROSSOLINEAMAGGIORE=C0LORELINEAMAGGIORE/256
- ROSSOLINEAMINORE=C0LORELINEAMINORE/256
- RAGIONEDELROSSO#=(ROSSOLINEAMAGGIORE-ROSSOLINEAMINORE)/(LINEE-1.0)
- VERDELINEAMAGGIORE=C0LORELINEAMAGGIORE/16 mod 16
- VERDELINEAMINORE=C0LORELINEAMINORE/16 mod 16
- RAGIONEDELVERDE#=(VERDELINEAMAGGIORE-VERDELINEAMINORE)/(LINEE-1.0)
- BLULINEAMAGGIORE=C0LORELINEAMAGGIORE mod 16
- BLULINEAMINORE=C0LORELINEAMINORE mod 16
- RAGIONEDELBLU#=(BLULINEAMAGGIORE-BLULINEAMINORE)/(LINEE-1.0)
- End Proc
- Procedure CARICAGLIOGGETTI
- Load PERCORSODEGLIOGGETTI$+OGGETTI$
- End Proc
- Procedure CARICAILLIVELLO
- Erase BANCO
- LIVELLO$="Livello"+Str$(LIVELLO)-" "
- FILE$=PERCORSODEILIVELLI$+LIVELLO$
- If Exist(FILE$)
- Open In 1,FILE$
- MARCATORE$=Input$(1,9)
- LUNGHEZZABANCO=Lof(1)
- Close 1
- If MARCATORE$="Mattonite"
- Reserve As Work BANCO,LUNGHEZZABANCO
- Bload FILE$,Start(BANCO)
- End If
- End If
- End Proc
- Procedure DABANCOAVARIABILI
- If Length(BANCO)>0
- INDIRIZZO=Start(BANCO)+9
- For A=0 To 246
- MATTONCINO(A)=Peek(INDIRIZZO)
- Inc INDIRIZZO
- Next A
- For A=0 To 255
- ARCOBALENO=Peek(INDIRIZZO)
- Inc INDIRIZZO
- ARCOBALENO=ARCOBALENO+Peek(INDIRIZZO)*$100
- Rain(0,A)=ARCOBALENO
- Inc INDIRIZZO
- Next A
- BONUS=Peek(INDIRIZZO)
- Inc INDIRIZZO
- Add BONUS,Peek(INDIRIZZO)*100
- Inc INDIRIZZO
- Add BONUS,Peek(INDIRIZZO)*10000
- Inc INDIRIZZO
- Add BONUS,Peek(INDIRIZZO)*1000000
- Inc INDIRIZZO
- Print At(0,29);
- If INDIRIZZO=Start(BANCO)+Length(BANCO)
- Print "Level";LIVELLO;" loaded";
- Else
- Print "Data error";
- End If
- Else
- Print At(0,29);"Level not loaded";
- End If
- Wait 100
- Print At(0,29);Space$(28);
- End Proc
- Procedure DAVARIABILIABANCO
- Reserve As Work BANCO,772
- INDIRIZZO=Start(BANCO)
- Poke$ INDIRIZZO,"Mattonite"
- Add INDIRIZZO,9
- For A=0 To 246
- Poke INDIRIZZO,MATTONCINO(A)
- Inc INDIRIZZO
- Next A
- For A=0 To 255
- ARCOBALENO=Rain(0,A)
- Poke INDIRIZZO,ARCOBALENO mod $100
- Inc INDIRIZZO
- Poke INDIRIZZO,ARCOBALENO/$100
- Inc INDIRIZZO
- Next A
- Poke INDIRIZZO,BONUS mod 100
- Inc INDIRIZZO
- Poke INDIRIZZO,BONUS/100 mod 100
- Inc INDIRIZZO
- Poke INDIRIZZO,BONUS/10000 mod 100
- Inc INDIRIZZO
- Poke INDIRIZZO,BONUS/1000000 mod 100
- Inc INDIRIZZO
- Print At(0,29);
- If INDIRIZZO=Start(BANCO)+Length(BANCO)
- Print "Level";LIVELLO;" converted";
- CONVERSIONERIUSCITA=True
- Else
- Print "Data error";
- CONVERSIONERIUSCITA=False
- End If
- Wait 100
- Print At(0,29);Space$(28);
- End Proc
- Procedure INDIVIDUALAPOSIZIONEDELPROGRAMMA
- PERCORSO$=Dir$
- End Proc
- Procedure IMPOSTAICOLORI
- Get Bob Palette
- End Proc
- Procedure IMPOSTAILAMPEGGI
- Flash 20,"(0FF,2)(FFF,1)(0FF,2)(000,1)"
- Flash 21,"(F70,2)(FFF,1)(F70,2)(000,1)"
- Flash 22,"(F77,9)(FF7,9)(7F7,9)(7FF,9)(77F,9)(F7F,9)"
- End Proc
- Procedure IMPOSTAIPERCORSIDEIFILE
- PERCORSODEGLIOGGETTI$=PERCORSO$+"Grafica/"
- PERCORSODEILIVELLI$=PERCORSO$+"Livelli/"
- End Proc
- Procedure IMPOSTALABARRADISCORRIMENTO
- Set Slider 61,61,29,1,63,63,29,1
- End Proc
- Procedure IMPOSTALARCOBALENO
- Set Rainbow 0,0,271,"","","" : Rainbow 0,257,0,271
- End Proc
- Procedure IMPOSTALEZONEDEIMATTONCINI
- Reserve Zone 264
- Ink 29 : Polyline 272,0 To 272,208 To 0,208
- For M=0 To 246
- LINEADIMATTONCINI=M/13
- RIGADIMATTONCINI=M mod 13
- X0ZONA(M)=RIGADIMATTONCINI*21
- Y0ZONA(M)=LINEADIMATTONCINI*11
- MATTONCINO(M)=1
- If MATTONCINO(M)>0 Then Paste Bob X0ZONA(M),Y0ZONA(M),82+MATTONCINO(M)
- Set Zone M+1,X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+20,Y0ZONA(M)+10
- Next M
- End Proc
- Procedure IMPOSTALOSCHERMO
- Screen Open 0,320,256,64,Lowres
- Curs Off : Flash Off : Pen 29 : Paper 0 : Cls
- End Proc
- Procedure MOSTRAILBONUS
- CIFRA=BONUS/1000000 mod 10
- Ink 29,32 : Text 84,216,Str$(CIFRA)-" "
- CIFRA=BONUS/100000 mod 10
- Ink 29,32 : Text 92,216,Str$(CIFRA)-" "
- CIFRA=BONUS/10000 mod 10
- Ink 29,32 : Text 100,216,Str$(CIFRA)-" "
- CIFRA=BONUS/1000 mod 10
- Ink 29,32 : Text 108,216,Str$(CIFRA)-" "
- CIFRA=BONUS/100 mod 10
- Ink 29,32 : Text 116,216,Str$(CIFRA)-" "
- CIFRA=BONUS/10 mod 10
- Ink 29,32 : Text 124,216,Str$(CIFRA)-" "
- CIFRA=BONUS mod 10
- Ink 29,32 : Text 132,216,Str$(CIFRA)-" "
- End Proc
- Procedure MOSTRAILLIVELLO
- CIFRA=LIVELLO/100 mod 10
- Ink 29,32 : Text 40,216,Str$(CIFRA)-" "
- CIFRA=LIVELLO/10 mod 10
- Ink 29,32 : Text 48,216,Str$(CIFRA)-" "
- CIFRA=LIVELLO mod 10
- Ink 29,32 : Text 56,216,Str$(CIFRA)-" "
- End Proc
- Procedure MOSTRAIMATTONCINI
- For M=0 To 246
- If MATTONCINO(M)=0
- Ink 0 : Bar X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+19,Y0ZONA(M)+9
- Else
- Paste Bob X0ZONA(M),Y0ZONA(M),MATTONCINO(M)+82
- End If
- Next M
- End Proc
- Procedure MOSTRALALINEAATTIVA
- If LINEAMAGGIORE=True
- C0LORELINEAMAGGIORE=Rain(0,POSIZIONELINEAMAGGIORE)
- Colour 1,C0LORELINEAMAGGIORE
- Ink 1 : Bar 264,208 To 272,255
- Ink 29 : Box 264,208 To 272,255
- ROSSO=C0LORELINEAMAGGIORE/256
- VERDE=C0LORELINEAMAGGIORE/16 mod 16
- BLU=C0LORELINEAMAGGIORE mod 16
- Ink 29 : Draw 272,POSIZIONELINEAMAGGIORE To 281,POSIZIONELINEAMAGGIORE
- Ink 32 : Draw 310,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
- Else
- C0LORELINEAMINORE=Rain(0,POSIZIONELINEAMINORE)
- Colour 1,C0LORELINEAMINORE
- Ink 1 : Bar 264,208 To 272,255
- Ink 29 : Box 264,208 To 272,255
- ROSSO=C0LORELINEAMINORE/256
- VERDE=C0LORELINEAMINORE/16 mod 16
- BLU=C0LORELINEAMINORE mod 16
- Ink 29 : Draw 272,POSIZIONELINEAMINORE To 281,POSIZIONELINEAMINORE
- Ink 32 : Draw 310,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
- End If
- Hslider 233,209 To 264,223,16,ROSSO,1
- Ink 0 : Bar 217,216 To 232,223
- ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
- Hslider 233,225 To 264,239,16,VERDE,1
- Ink 0 : Bar 217,232 To 232,239
- VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
- Hslider 233,241 To 264,255,16,BLU,1
- Ink 0 : Bar 217,248 To 232,255
- BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
- Locate 10,31
- If LINEAMAGGIORE=True Then Print "Major"; Else Print "Minor";
- End Proc
- Procedure MOSTRALEZONE
- Print At(0,30);Space$(28);At(0,30);"Rainbow";Chr$(147);Chr$(148);Chr$(149);Chr$(150)
- Print At(0,31);Space$(28);At(0,31);"Load Save line";
- End Proc
- Procedure PROGRESSIONECOLORI
- Shared LINEE,RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
- Shared ROSSOLINEAMINORE,VERDELINEAMINORE,BLULINEAMINORE
- For LINEA=1 To LINEE-2
- ROSSO=ROSSOLINEAMINORE+(LINEA)*RAGIONEDELROSSO#
- VERDE=VERDELINEAMINORE+(LINEA)*RAGIONEDELVERDE#
- BLU=BLULINEAMINORE+(LINEA)*RAGIONEDELBLU#
- C0LORE=ROSSO*256+VERDE*16+BLU
- Rain(0,POSIZIONELINEAMINORE+LINEA)=C0LORE : Rainbow 0,257,0,271
- Bell 96
- Next LINEA
- End Proc
- Procedure SALVAILLIVELLO
- If CONVERSIONERIUSCITA=True
- LIVELLO$="Livello"+Str$(LIVELLO)-" "
- FILE$=PERCORSODEILIVELLI$+LIVELLO$
- Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO)
- Print At(0,29);"Level";LIVELLO;" saved";
- Wait 100
- Print At(0,29);Space$(28);
- End If
- End Proc
-